応用情報技術者 PR

【応用情報技術者】デッドロックとは何か

記事内に商品プロモーションを含む場合があります

●デッドロックとは
お互いが資源をロックしながら相手のロック解放待ち状態になっているため、身動きが取れない状況になる現象。

出題された回(平成29年度春期以降)
平成31年度春期

デッドロックの説明

デッドロックとは、お互いが資源をロックしながら相手のロック解放待ち状態になっているため、身動きが取れない状況になる現象です。

デッドロックが起こる原因

複数のタスクが資源獲得を逆順序で行うとき、デッドロックが生じます

下図では、タスク1がファイルBをロックしながらファイルCの解放を待ち、タスク2がファイルCをロックしながらファイルBの解放を待っているので、デッドロックが生じています。

逆に、複数のタスクが資源獲得を順番に行えばデッドロックは生じません

下図のように資源獲得の順番が同じならば、それぞれのタスクが競合することはあり得ません。タスク2はファイルCでの作業を完了した時点でファイルDを獲得することが出来ますし、タスク1もタスク2がファイルCを解放した時点でファイルCを獲得することが出来るからです。

過去問

応用情報技術者 午前試験
平成31年度春期問18

二つのタスクが共用する二つの資源を排他的に使用するとき,デッドロックが発生するおそれがある。このデッドロックの発生を防ぐ方法はどれか。

ア 一方のタスクの優先度を高くする。
イ 資源獲得の順序を両方のタスクで同じにする。
ウ 資源獲得の順序を両方のタスクで逆にする。
エ 両方のタスクの優先度を同じにする。

正解と解説

正解は”イ”